using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._NetworkDiagramTools._Configuration
{
    /// <summary>
    /// <para>Delete Diagram Template</para>
    /// <para>Deletes a diagram template and all diagrams  
    /// based on that template.</para>
    /// <para>删除逻辑示意图模板和所有逻辑示意图
    /// 基于该模板。</para>
    /// </summary>    
    [DisplayName("Delete Diagram Template")]
    public class DeleteDiagramTemplate : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public DeleteDiagramTemplate()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_utility_network">
        /// <para>Input Network</para>
        /// <para>The utility network or trace network related to the diagram template to delete.</para>
        /// <para>要删除的与逻辑示意图模板相关的公共设施网络或追踪网络。</para>
        /// </param>
        /// <param name="_template_name">
        /// <para>Input Diagram Template</para>
        /// <para>The name of the diagram template to delete.</para>
        /// <para>要删除的逻辑示意图模板的名称。</para>
        /// </param>
        public DeleteDiagramTemplate(object _in_utility_network, object _template_name)
        {
            this._in_utility_network = _in_utility_network;
            this._template_name = _template_name;
        }
        public override string ToolboxName => "Network Diagram Tools";

        public override string ToolName => "Delete Diagram Template";

        public override string CallName => "nd.DeleteDiagramTemplate";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_in_utility_network, _template_name, _out_utility_network];

        /// <summary>
        /// <para>Input Network</para>
        /// <para>The utility network or trace network related to the diagram template to delete.</para>
        /// <para>要删除的与逻辑示意图模板相关的公共设施网络或追踪网络。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Network")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_utility_network { get; set; }


        /// <summary>
        /// <para>Input Diagram Template</para>
        /// <para>The name of the diagram template to delete.</para>
        /// <para>要删除的逻辑示意图模板的名称。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Diagram Template")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _template_name { get; set; }


        /// <summary>
        /// <para>Output Network</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Network")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_utility_network { get; set; }


        public DeleteDiagramTemplate SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}